
package com.cupk.dtos;

import lombok.Data;
import java.util.List;

/**
 * 分页结果的通用数据传输对象
 * 对应前端的 interface Page<T>
 */
@Data
public class PageDto<T> { // 这是一个泛型类

    private List<T> records; // 当前页的数据列表
    private long total;      // 总记录数
    private long size;       // 每页显示条数
    private long current;    // 当前页码
    private long pages;      // 总页数

    // 构造函数，方便从 MyBatis-Plus 的 Page 对象转换
    public PageDto() {
    }

    public PageDto(List<T> records, long total, long size, long current, long pages) {
        this.records = records;
        this.total = total;
        this.size = size;
        this.current = current;
        this.pages = pages;
    }

    // 您也可以添加一个静态工厂方法来方便转换
    public static <T> PageDto<T> fromMybatisPlusPage(com.baomidou.mybatisplus.extension.plugins.pagination.Page<T> mpPage) {
        PageDto<T> dto = new PageDto<>();
        dto.setRecords(mpPage.getRecords());
        dto.setTotal(mpPage.getTotal());
        dto.setSize(mpPage.getSize());
        dto.setCurrent(mpPage.getCurrent());
        dto.setPages(mpPage.getPages());
        return dto;
    }
}